package com.summer.utils.aes;

/**
 * Created by haoyitao on 2018/4/11.
 */
public class AESUtil {

    /*
   * 加密
   * 1.构造密钥生成器
   * 2.根据ecnodeRules规则初始化密钥生成器
   * 3.产生密钥
   * 4.创建和初始化密码器
   * 5.内容加密
   * 6.返回字符串
   */
    public static String AESEncode(String encodeRules, String content) {

        try {
            return AESSecurityUtils.encrypt(content,encodeRules);
        } catch (Exception e) {
            throw new RuntimeException("加密失败，e"+e);
        }
    }

    /*
     * 解密
     * 解密过程：
     * 1.同加密1-4步
     * 2.将加密后的字符串反纺成byte[]数组
     * 3.将加密内容解密
     */
    public static String AESDncode(String encodeRules, String content)  {

        try {
            return AESSecurityUtils.decrypt(content,encodeRules);
        } catch (Exception e) {
            throw new RuntimeException("解密失败,e="+e);
        }
    }


    public static void main(String[] args) {
//        AESUtil se=new AESUtil();
//        Scanner scanner=new Scanner(System.in);
//        /*
//         * 加密
//         */
//        System.out.println("使用AES对称加密，请输入加密的规则");
//        String encodeRules=scanner.next();
//        System.out.println("请输入要加密的内容:");
//        String content = scanner.next();
//        System.out.println("根据输入的规则"+encodeRules+"加密后的密文是:"+ AESEncode(encodeRules, content));
//
//        /*
//         * 解密
//         */
//        System.out.println("使用AES对称解密，请输入加密的规则：(须与加密相同)");
//        String  encodeRules="ilovexhl";
//        System.out.println("请输入要解密的内容（密文）:");
//        String  content = "ZjlzWczdb3gbShGurZn7QjLEbq5EQbk0EPpUWNZKUNMELRFY5ZZjhlvx/CbcZxhY";
//        String uuid = NumUtils.getUUID();
//        System.out.println("根据输入的规则"+encodeRules+"解密后的明文是:"+AESDncode(encodeRules, "FMMghz9ey0EP92TFZty1+2cFmy33UwSfZxIeoKq/Rw5qkvQ+LCet91zOCj+capSN"));
    }

}
